#ifndef MANEJADORARCHIVO_H_
#define MANEJADORARCHIVO_H_

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdlib.h>
#include "Mutex.h"

using namespace std;


class ManejadorArchivo {
public:
	ManejadorArchivo(const string &path);

	virtual ~ManejadorArchivo();

	unsigned long long int getTamanioArchivo() ;

	bool expandirArchivo(unsigned long long int longitudArchivo);

	bool copiarEnArchivo(unsigned long long int offset, const string &buffer);

	string getContenidoArchivo(unsigned long long int offset , unsigned long long int cantidadBytes);

	bool esValido() const;

private:

	Mutex mutex;
	fstream archivo;
	string path;
	bool valido;

};

#endif /* MANEJADORARCHIVO_H_ */
